{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:18:59.177820Z",
     "end_time": "2023-07-01T11:19:01.690106Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [],
   "source": [
    "class BernoulliBandit:\n",
    "    \"\"\"\n",
    "    伯努利多臂老虎机，输出K表示拉杆个数\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(self, K):\n",
    "        self.probs = np.random.uniform(size=K)  # 随机生成K个0-1的数，作为拉动每根拉杆的获奖概率\n",
    "        self.best_idx = np.argmax(self.probs)  # 获奖概率最大的拉杆\n",
    "        self.best_prob = self.probs[self.best_idx]  # 最大的获奖概率\n",
    "        self.K = K\n",
    "\n",
    "    def step(self, k):\n",
    "        # 当玩家选择了K拉杆之后，根据获得的奖励返回1（获奖）或0（未获奖）\n",
    "        if np.random.rand() < self.probs[k]:\n",
    "            return 1\n",
    "        else:\n",
    "            return 0"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:01.691102Z",
     "end_time": "2023-07-01T11:19:01.746953Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "随机生成了一个10臂伯努利老虎机\n",
      "获奖概率最大的拉杆为1号，获奖概率为0.7203244934421581\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(1)  #设定随机种子，使实验具有可重复性\n",
    "K = 10\n",
    "bandit_10_arm = BernoulliBandit(K)\n",
    "print(f'随机生成了一个{K}臂伯努利老虎机')\n",
    "print(f'获奖概率最大的拉杆为{bandit_10_arm.best_idx}号，获奖概率为{bandit_10_arm.best_prob}')"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:01.728003Z",
     "end_time": "2023-07-01T11:19:01.777869Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [],
   "source": [
    "class Solver:\n",
    "    \"\"\"\n",
    "    多臂老虎机算法基本框架\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(self, bandit):\n",
    "        self.bandit = bandit\n",
    "        self.counts = np.zeros(self.bandit.K)  # 每根拉杆的尝试次数\n",
    "        self.regret = 0.  #当前步积累的懊悔\n",
    "        self.actions = []  #维护一个列表， 记录每一步的动作\n",
    "        self.regrets = []  # 维护一个列表，记录每一步的懊悔\n",
    "\n",
    "    def update_regret(self, k):\n",
    "        #计算累计懊悔并保存，k为本次动作选择拉杆的编号\n",
    "        self.regret += self.bandit.best_prob - self.bandit.probs[k]\n",
    "        self.regrets.append(self.regret)\n",
    "\n",
    "    def run_one_step(self):\n",
    "        #返回当期那动作选择哪一根拉杆，由每个具体的策略实现\n",
    "        raise NotImplementedError\n",
    "\n",
    "    def run(self, num_steps):\n",
    "        # 运行一定次数，num_steps为总运行次数\n",
    "        for _ in range(num_steps):\n",
    "            k = self.run_one_step()\n",
    "            self.counts[k] += 1\n",
    "            self.actions.append(k)\n",
    "            self.update_regret(k)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:01.774878Z",
     "end_time": "2023-07-01T11:19:01.823747Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [],
   "source": [
    "class EpsilonGreedy(Solver):\n",
    "    def __init__(self, bandit, epsilon=0.01, init_prob=1.0):\n",
    "        super().__init__(bandit)\n",
    "        self.epsilon = epsilon\n",
    "        #初始化拉动所有拉杆的期望奖励估值\n",
    "        self.estimates = np.array([init_prob] * self.bandit.K)\n",
    "\n",
    "    def run_one_step(self):\n",
    "        if np.random.random() < self.epsilon:\n",
    "            k = np.random.randint(0, self.bandit.K)  #随机选择一根拉杆\n",
    "        else:\n",
    "            k = np.argmax(self.estimates)  #选择期望奖励最大的拉杆\n",
    "        r = self.bandit.step(k)  #得到本次动作的奖励\n",
    "        self.estimates[k] += 1. / (self.counts[k] + 1) * (r - self.estimates[k])\n",
    "        return k"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:01.806793Z",
     "end_time": "2023-07-01T11:19:01.855661Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "outputs": [],
   "source": [
    "def plot_results(solvers, solver_names):\n",
    "    \"\"\"\n",
    "    生成累计懊悔随时间变化的图像，输入solvers是一个列表，列表中的每个元素时一种特定的策略，\n",
    "    solver_names也是一个列表，存储每个策略的名称\n",
    "    :param solvers:\n",
    "    :param solver_names:\n",
    "    :return:\n",
    "    \"\"\"\n",
    "    for idx, solver in enumerate(solvers):\n",
    "        time_list = range(len(solver.regrets))\n",
    "        plt.plot(time_list, solver.regrets, label=solver_names[idx])\n",
    "    plt.xlabel('Time steps')\n",
    "    plt.ylabel('Cumulative regrets')\n",
    "    plt.title(f'{solvers[0].bandit.K}-armed bandit')\n",
    "    plt.legend()\n",
    "    plt.show()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:01.846688Z",
     "end_time": "2023-07-01T11:19:01.903539Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epsilon-贪婪算法的累计懊悔为: 25.526630933945313\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(1)\n",
    "epsilon_greedy_solver = EpsilonGreedy(bandit_10_arm, epsilon=0.01)\n",
    "epsilon_greedy_solver.run(5000)\n",
    "print(f'epsilon-贪婪算法的累计懊悔为: {epsilon_greedy_solver.regret}')\n",
    "plot_results([epsilon_greedy_solver], [\"EpsilonGreedy\"])"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:01.869625Z",
     "end_time": "2023-07-01T11:19:02.769220Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 尝试不同的epsilon会带来什么样的结果\n",
    "np.random.seed(0)\n",
    "epsilons = [1e-4, 0.01, 0.1, 0.25, 0.5]\n",
    "epsilons_greedy_solver_list = [\n",
    "    EpsilonGreedy(bandit_10_arm, epsilon=e) for e in epsilons\n",
    "]\n",
    "epsilons_greedy_solver_names = [f\"epsilon={e}\" for e in epsilons]\n",
    "for solver in epsilons_greedy_solver_list:\n",
    "    solver.run(5000)\n",
    "plot_results(epsilons_greedy_solver_list, epsilons_greedy_solver_names)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:02.676468Z",
     "end_time": "2023-07-01T11:19:03.836368Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "outputs": [],
   "source": [
    "class DecayingEpsilonGreedy(Solver):\n",
    "    \"\"\"\n",
    "    epsilon值随时间衰减的epsilon-贪婪算法，继承Solver类\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(self, bandit, init_prob=1.0):\n",
    "        super().__init__(bandit)\n",
    "        self.estimates = np.array([init_prob] * self.bandit.K)\n",
    "        self.total_count = 0\n",
    "\n",
    "    def run_one_step(self):\n",
    "        self.total_count += 1\n",
    "        if np.random.random() < 1 / self.total_count:  #epsilon的值随时间衰减\n",
    "            k = np.random.randint(0, self.bandit.K)\n",
    "        else:\n",
    "            k = np.argmax(self.estimates)\n",
    "        r = self.bandit.step(k)\n",
    "        self.estimates[k] += 1. / (self.counts[k] + 1) * (r - self.estimates[k])\n",
    "        return k"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:03.816421Z",
     "end_time": "2023-07-01T11:19:03.962032Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epsilon值衰减的贪婪算法的累计懊悔为： 10.114334931260183\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAnElEQVR4nO3deXhTZf7+8Tvd0ha6sbQUKFAEQXZkE3UE2VE2xwWQryI6bhQFYVQYBRQdijqDKOPggCOLPxUdV1REEVlcQJBFKCgIVixLKQi0lKVA8vz+gARiCzRt0pPQ9+u6ck1zzknyydGZ3POsNmOMEQAAQBAKsboAAACAkiLIAACAoEWQAQAAQYsgAwAAghZBBgAABC2CDAAACFoEGQAAELQIMgAAIGgRZAAAQNAiyAC4qC1ZskQ2m01Lliw573VPPPGEbDab9u3bVzaFFcOsWbNks9n066+/uo917NhRHTt2tKwmINAQZIAgk5+fr/Hjx6tHjx6qVKmSbDabZs2adc7rf/zxR/Xo0UMVK1ZUpUqVdNttt2nv3r1lVzD8ateuXXriiSe0bt06q0sBLBFmdQEAvLNv3z5NmDBBtWrVUvPmzc/b0rBjxw5dc801iouL08SJE5Wfn69//OMf2rBhg1auXKmIiIiyKxw+8fnnn3s837Vrl5588knVqVNHLVq0sKYowEIEGSDIJCcna/fu3apWrZq+//57tWnT5pzXTpw4UYcPH9bq1atVq1YtSVLbtm3VtWtXzZo1S/fcc4/f6jx8+LAqVKjgt/cvrwifgCe6loAgY7fbVa1atWJd++6776pXr17uECNJXbp00aWXXqq33377gq/fvn27hg4dqgYNGigqKkqVK1fWzTff7DFmQzozlmPp0qUaOnSoEhMTVbNmTUmnxnQ0adJE69evV4cOHRQdHa169erpnXfekSQtXbpU7dq1U1RUlBo0aKAvvviiUB07d+7UnXfeqaSkJNntdjVu3Fivvvpqoet27Nihfv36qUKFCkpMTNRDDz2kgoKCYt0rl3379umWW25RbGysKleurOHDh+vYsWMe18ycOVOdOnVSYmKi7Ha7GjVqpGnTphV6rzp16qhXr176+uuv1bZtW0VGRqpu3bqaM2dOoWs3btyoTp06KSoqSjVr1tTTTz8tp9NZ6Lqzx8gsWbLEHWSHDBkim812wa5G4GJDiwxwkdq5c6dycnLUunXrQufatm2r+fPnX/A9Vq1apW+//VYDBgxQzZo19euvv2ratGnq2LGjNm3apOjoaI/rhw4dqqpVq2rcuHE6fPiw+/iBAwfUq1cvDRgwQDfffLOmTZumAQMG6PXXX9eIESN033336dZbb9Vzzz2nm266SVlZWYqJiZEk7dmzR1dccYVsNpuGDRumqlWr6tNPP9Vdd92lvLw8jRgxQpJ09OhRde7cWb/99psefPBBVa9eXa+99pq+/PJLr+7bLbfcojp16ig9PV0rVqzQiy++qAMHDniEj2nTpqlx48bq06ePwsLC9NFHH2no0KFyOp1KS0vzeL+tW7fqpptu0l133aXBgwfr1Vdf1R133KFWrVqpcePGkqTs7Gxde+21OnnypEaPHq0KFSpo+vTpioqKOm+tl112mSZMmKBx48bpnnvu0Z/+9CdJ0pVXXunVdwaCmgEQtFatWmUkmZkzZ57z3Jw5cwqde/jhh40kc+zYsfO+/5EjRwodW758eaH3nTlzppFkrr76anPy5EmP6zt06GAkmTfeeMN97KeffjKSTEhIiFmxYoX7+GeffVbo+9x1110mOTnZ7Nu3z+N9BwwYYOLi4tw1TpkyxUgyb7/9tvuaw4cPm3r16hlJZvHixef9ruPHjzeSTJ8+fTyODx061EgyP/zww3nvS/fu3U3dunU9jtWuXdtIMsuWLXMfy8nJMXa73YwaNcp9bMSIEUaS+e677zyui4uLM5JMZmam+3iHDh1Mhw4d3M/P9+8AUB7QtQRcpI4ePSrpVFfUH0VGRnpccy5ntwicOHFCv//+u+rVq6f4+HitWbOm0PV33323QkNDCx2vWLGiBgwY4H7eoEEDxcfH67LLLlO7du3cx11///LLL5IkY4zeffdd9e7dW8YY7du3z/3o3r27cnNz3XXMnz9fycnJuummm9zvFx0d7fU4oD+2qDzwwAPu93c5+77k5uZq37596tChg3755Rfl5uZ6vL5Ro0bulhJJqlq1qho0aOD+jq73vuKKK9S2bVuP6wYNGuRV7UB5RNcScJFy/dgWNUbENeYjKipKDoej0HTsSpUqKSIiQkePHlV6erpmzpypnTt3yhjjvuaPP9iSlJqaWmQtNWvWlM1m8zgWFxenlJSUQsekU11RkrR3714dPHhQ06dP1/Tp04t875ycHEmnxvPUq1ev0Oc0aNCgyNedS/369T2eX3LJJQoJCfEYF/TNN99o/PjxWr58uY4cOeJxfW5urvt7SPIYn+SSkJDg/o6u2s8OdCWtHSiPCDLARSo5OVmStHv37kLndu/erUqVKslut+vXX38tFEAWL16sjh076oEHHtDMmTM1YsQItW/fXnFxcbLZbBowYECRA1HPNaajqFaa8x13BSbXZ/zf//2fBg8eXOS1zZo1K/K4r/wxGG3btk2dO3dWw4YNNXnyZKWkpCgiIkLz58/X888/X+i+XOg7AigdggxwkapRo4aqVq2q77//vtC5lStXutccqVatmhYuXOhxvnnz5pKkd955R4MHD9Y///lP97ljx47p4MGDfqv7bFWrVlVMTIwcDoe6dOly3mtr166tjIwMGWM8wsfmzZu9+syff/7ZI9ht3bpVTqdTderUkSR99NFHKigo0Lx58zxaWxYvXuzV5/yx9p9//rnQ8eLU/segBZQ3jJEBLmI33nijPv74Y2VlZbmPLVq0SFu2bNHNN98s6dR4mS5dung8EhISJJ1qTfhjy8HUqVPlcDjKpP7Q0FDdeOONevfdd5WRkVHo/NldYtddd5127drlntYtSUeOHDlnl9S5vPTSSx7Pp06dKknq2bOnuyZJhbrZZs6c6dXnnO26667TihUrtHLlSvexvXv36vXXX7/ga11r9ZRVuAQCDS0yQBD617/+pYMHD2rXrl2STrUS7NixQ9KpwamuMRp/+9vf9L///U/XXnuthg8frvz8fD333HNq2rSphgwZcsHP6dWrl1577TXFxcWpUaNGWr58ub744gtVrlzZf1/uDyZNmqTFixerXbt2uvvuu9WoUSPt379fa9as0RdffKH9+/dLOjXQ+F//+pduv/12rV69WsnJyXrttdcKTRG/kMzMTPXp00c9evTQ8uXL9f/+3//Trbfe6m6l6tatmyIiItS7d2/de++9ys/P14wZM5SYmFhkN15xPPLII3rttdfUo0cPDR8+3D39unbt2lq/fv15X3vJJZcoPj5eL7/8smJiYlShQgW1a9funOOVgIuOdROmAJSUa1pvUY+zp+oaY0xGRobp1q2biY6ONvHx8WbQoEEmOzu7WJ9z4MABM2TIEFOlShVTsWJF0717d/PTTz+Z2rVrm8GDB7uvc02/XrVqVaH36NChg2ncuHGR3+H6668vdFySSUtL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lrD9w9/lndNJiwwAAFbyui1hzpw5KigoKHT8+PHjmjNnjk+KChZnZi1ZWgYAAOWW10FmyJAhys3NLXT80KFDGjJkiE+KChanG2SYfg0AgEW8DjLGmCJ/uHfs2KG4uDifFBUsXIN9mbUEAIA1ij39umXLlrLZbLLZbOrcubPCws681OFwKDMzUz169PBLkYHKNf2aHAMAgDWKHWRcs5XWrVun7t27q2LFiu5zERERqlOnjm688UafFxjIjFwtMkQZAACsUOwgM378eElSnTp11L9/f0VGRvqtqGDhdI/2tbQMAADKLa9X9h08eLA/6ghKht2vAQCwlNdBxuFw6Pnnn9fbb7+t3377TcePH/c4v3//fp8VF+jY/RoAAGt5PWvpySef1OTJk9W/f3/l5uZq5MiR+vOf/6yQkBA98cQTfigx8NEiAwCANbwOMq+//rpmzJihUaNGKSwsTAMHDtQrr7yicePGacWKFf6oMWC5V/YlxwAAYAmvg0x2draaNm0qSapYsaJ7cbxevXrpk08+8W11Ae7Myr4kGQAArOB1kKlZs6Z2794tSbrkkkv0+eefS5JWrVolu93u2+oCnHuMDDkGAABLeB1kbrjhBi1atEiS9MADD2js2LGqX7++br/9dt15550+LzCQnZm1ZG0dAACUV17PWpo0aZL77/79+6tWrVpavny56tevr969e/u0uEBnDLtfAwBgJa+DzB+1b99e7du390UtQYfdrwEAsFaxgsy8efOK/YZ9+vQpcTHBxmnYogAAACsVK8i49lm6EJvNJofDUZp6goprjAwAALBGsYKM0+n0dx1ByZVjaJEBAMAaXs9awhmuFhlyDAAA1vB6sO+ECRPOe37cuHElLibYGPZaAgDAUl4Hmffff9/j+YkTJ5SZmamwsDBdcskl5SvInP5PWmQAALCG10Fm7dq1hY7l5eXpjjvu0A033OCTooKFu0WGJAMAgCV8MkYmNjZWTz75pMaOHeuLtwsajJEBAMBaPhvsm5ub695AsrxwuoIMo2QAALCE111LL774osdzY4x2796t1157TT179vRZYcHAiE0jAQCwktdB5vnnn/d4HhISoqpVq2rw4MEaM2aMzwoLBu6uJWvLAACg3PI6yGRmZvqjjqDGgngAAFiDBfFK4cysJYsLAQCgnPI6yBw7dkzPPfecrrvuOrVu3VqXX365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Vjy0yHipSpUqCg0NLTRie8+ePapWrZpFVQU313073z2tVq2acnJyPM6fPHlS+/fv97imqPc4+zPKg2HDhunjjz/W4sWLVbNmTffxatWq6fjx4zp48KDH9X+8zxe6h+e6JjY2Nij+R89XIiIiVK9ePbVq1Urp6elq3ry5XnjhBe6zj6xevVo5OTm6/PLLFRYWprCwMC1dulQvvviiwsLClJSUxH32k/j4eF166aXaunVrUPz7TJDxUkREhFq1aqVFixa5jzmdTi1atEjt27e3sLLglZqaqmrVqnnc07y8PH333Xfue9q+fXsdPHhQq1evdl/z5Zdfyul0ql27du5rli1bphMnTrivWbhwoRo0aKCEhIQy+jbWMcZo2LBhev/99/Xll18qNTXV43yrVq0UHh7ucZ83b96s3377zeM+b9iwwSM0Lly4ULGxsWrUqJH7mrPfw3VNef/33+l0qqCggPvsI507d9aGDRu0bt0696N169YaNGiQ+2/us3/k5+dr27ZtSk5ODo5/n0s9XLgcmjt3rrHb7WbWrFlm06ZN5p577jHx8fEeI7bh6dChQ2bt2rVm7dq1RpKZPHmyWbt2rdm+fbsx5tT06/j4ePPhhx+a9evXm759+xY5/bply5bmu+++M19//bWpX7++x/TrgwcPmqSkJHPbbbeZjIwMM3fuXBMdHV1upl/ff//9Ji4uzixZssRjGuWRI0fc19x3332mVq1a5ssvvzTff/+9ad++vWnfvr37vGsaZbdu3cy6devMggULTNWqVYucRvnwww+bH3/80bz00kvlbrrq6NGjzdKlS01mZqZZv369GT16tLHZbObzzz83xnCf/eXsWUvGcJ99ZdSoUWbJkiUmMzPTfPPNN6ZLly6mSpUqJicnxxgT+PeZIFNCU6dONbVq1TIRERGmbdu2ZsWKFVaXFNAWL15sJBV6DB482Bhzagr22LFjTVJSkrHb7aZz585m8+bNHu/x+++/m4EDB5qKFSua2NhYM2TIEHPo0CGPa3744Qdz9dVXG7vdbmrUqGEmTZpUVl/RckXdX0lm5syZ7muOHj1qhg4dahISEkx0dLS54YYbzO7duz3e59dffzU9e/Y0UVFRpkqVKmbUqFHmxIkTHtcsXrzYtGjRwkRERJi6det6fEZ5cOedd5ratWubiIgIU7VqVdO5c2d3iDGG++wvfwwy3Gff6N+/v0lOTjYRERGmRo0apn///mbr1q3u84F+n23GGFP6dh0AAICyxxgZAAAQtAgyAAAgaBFkAABA0CLIAACAoEWQAQAAQYsgAwAAghZBBgAABC2CDACfueOOO9SvXz+rywBQjrD7NYBisdls5z0/fvx4vfDCCwq0NTaXLFmia6+9VgcOHFB8fLzV5QDwMYIMgGLZvXu3+++33npL48aN0+bNm93HKlasqIoVK1pRGoByjK4lAMVSrVo19yMuLk42m83jWMWKFQt1LXXs2FEPPPCARowYoYSEBCUlJWnGjBk6fPiwhgwZopiYGNWrV0+ffvqpx2dlZGSoZ8+eqlixopKSknTbbbdp375956xt+/bt6t27txISElShQgU1btxY8+fP16+//qprr71WkpSQkCCbzaY77rhD0qndqtPT05WamqqoqCg1b95c77zzjvs9lyxZIpvNpk8++UTNmjVTZGSkrrjiCmVkZFzwcwGUHYIMAL+aPXu2qlSpopUrV+qBBx7Q/fffr5tvvllXXnml1qxZo27duum2227TkSNHJEkHDx5Up06d1LJlS33//fdasGCB9uzZo1tuueWcn5GWlqaCggItW7ZMGzZs0DPPPKOKFSsqJSVF7777riRp8+bN2r17t1544QVJUnp6uubMmaOXX35ZGzdu1EMPPaT/+7//09KlSz3e++GHH9Y///lPrVq1SlWrVlXv3r114sSJ834ugDLkk60nAZQrM2fONHFxcYWODx482PTt29f9vEOHDubqq692Pz958qSpUKGCue2229zHdu/ebSSZ5cuXG2OMeeqpp0y3bt083jcrK8tIKrQjukvTpk3NE088UeQ5187rBw4ccB87duyYiY6ONt9++63HtXfddZcZOHCgx+vmzp3rPv/777+bqKgo89Zbb13wcwGUDcbIAPCrZs2auf8ODQ1V5cqV1bRpU/expKQkSVJOTo4k6YcfftDixYuLbNnYtm2bLr300kLHH3zwQd1///36/PPP1aVLF914440en/tHW7du1ZEjR9S1a1eP48ePH1fLli09jrVv3979d6VKldSgQQP9+OOPJfpcAL5H1xIAvwoPD/d4brPZPI65ZkM5nU5JUn5+vnr37q1169Z5PH7++Wddc801RX7GX/7yF/3yyy+67bbbtGHDBrVu3VpTp049Z035+fmSpE8++cTjMzZt2uQxTuZCvP1cAL5HkAEQUC6//HJt3LhRderUUb169TweFSpUOOfrUlJSdN999+m9997TqFGjNGPGDElSRESEJMnhcLivbdSokex2u3777bdCn5GSkuLxvitWrHD/feDAAW3ZskWXXXbZBT8XQNkgyAAIKGlpadq/f78GDhyoVatWadu2bfrss880ZMgQjzBythEjRuizzz5TZmam1qxZo8WLF7vDRu3atWWz2fTxxx9r7969ys/PV0xMjP7617/qoYce0uzZs7Vt2zatWbNGU6dO1ezZsz3ee8KECVq0aJEyMjJ0xx13qEqVKu6ZWef7XABlgyADIKBUr15d33zzjRwOh7p166amTZtqxIgRio+PV0hI0f+T5XA4lJaWpssuu0w9evTQpZdeqn//+9+SpBo1aujJJ5/U6NGjlZSUpGHDhkmSnnrqKY0dO1bp6enu133yySdKTU31eO9JkyZp+PDhatWqlbKzs/XRRx95tPKc63MBlA2bMQG2DCcABABWBAaCAy0yAAAgaBFkAABA0KJrCQAABC1aZAAAQNAiyAAAgKBFkAEAAEGLIAMAAIIWQQYAAAQtggwAAAhaBBkAABC0CDIAACBoEWQAAEDQ+v+Uy3S9m85p6gAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(1)\n",
    "decaying_epsilon_greedy_solve = DecayingEpsilonGreedy(bandit_10_arm)\n",
    "decaying_epsilon_greedy_solve.run(5000)\n",
    "print(f'epsilon值衰减的贪婪算法的累计懊悔为：', decaying_epsilon_greedy_solve.regret)\n",
    "plot_results([decaying_epsilon_greedy_solve], \"DecayingEpsilonGreedy\")"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:03.826398Z",
     "end_time": "2023-07-01T11:19:04.192415Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 上置信界算法"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "outputs": [],
   "source": [
    "class UCB(Solver):\n",
    "    \"\"\"\n",
    "    UCB算法，继承Solver类\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(self, bandit, coef, init_prob=1.0):\n",
    "        super().__init__(bandit)\n",
    "        self.total_count = 0\n",
    "        self.estimates = np.array([init_prob] * self.bandit.K)\n",
    "        self.coef = coef\n",
    "\n",
    "    def run_one_step(self):\n",
    "        self.total_count += 1\n",
    "        #计算上置信界\n",
    "        ucb = self.estimates + self.coef * np.sqrt(np.log(self.total_count) / (2 * (self.counts + 1)))\n",
    "        k = np.argmax(ucb)  #选出上置信界最大的拉杆\n",
    "        r = self.bandit.step(k)\n",
    "        self.estimates[k] += 1. / (self.counts[k] + 1) * (r - self.estimates[k])\n",
    "        return k"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:04.154518Z",
     "end_time": "2023-07-01T11:19:04.192415Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "上置信界算法的累计懊悔为: 70.45281214197854\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(1)\n",
    "coef = 1  # 空值不确定性比重的系数\n",
    "UCB_solver = UCB(bandit_10_arm, coef)\n",
    "UCB_solver.run(5000)\n",
    "print(f'上置信界算法的累计懊悔为: {UCB_solver.regret}')\n",
    "plot_results([UCB_solver, decaying_epsilon_greedy_solve], ['UCB', 'decay'])"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:04.187430Z",
     "end_time": "2023-07-01T11:19:04.727985Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 汤普森采样算法"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "outputs": [],
   "source": [
    "class ThompsonSampling(Solver):\n",
    "    def __init__(self, bandit):\n",
    "        super().__init__(bandit)\n",
    "        self._a = np.ones(self.bandit.K)  # 列表，表示每根拉杆奖励为1的次数\n",
    "        self._b = np.ones(self.bandit.K)  # 列表，表示每根拉杆奖励为0的次数\n",
    "\n",
    "    def run_one_step(self):\n",
    "        samples = np.random.beta(self._a, self._b)  #按照Beta分布采样\n",
    "        k = np.argmax(samples)  #选出采样奖励最大的拉杆\n",
    "        r = self.bandit.step(k)\n",
    "        self._a[k] += r  #更新Beta分布的第一个参数\n",
    "        self._b[k] += (1 - r)  #更新Beta分布的第二个参数\n",
    "        return k"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:04.722998Z",
     "end_time": "2023-07-01T11:19:04.826723Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "汤普森采样算法的累计懊悔为: 57.19161964443925\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(1)\n",
    "thompson_sampling_solver = ThompsonSampling(bandit_10_arm)\n",
    "thompson_sampling_solver.run(5000)\n",
    "print('汤普森采样算法的累计懊悔为: {}'.format(thompson_sampling_solver.regret))\n",
    "plot_results([thompson_sampling_solver,UCB_solver, decaying_epsilon_greedy_solve,epsilon_greedy_solver],['ThompsonSampling','UCB', 'epsilon_greedy_decay','epsilon_greedy'])"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:04.750923Z",
     "end_time": "2023-07-01T11:19:05.482966Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "start_time": "2023-07-01T11:19:05.475985Z",
     "end_time": "2023-07-01T11:19:05.592673Z"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
